home *** CD-ROM | disk | FTP | other *** search
/ Shareware Grab Bag / Shareware Grab Bag.iso / 007 / smallc.arc / CC.C < prev    next >
Text File  |  1985-07-17  |  1KB  |  65 lines

  1.  
  2. /****************************************************************
  3. *                                *
  4. *            C P R I N T                *
  5. *                                *
  6. *    C Source Function Paren and Bracket Checker         *
  7. *                                *
  8. *    T. Jennings                         *
  9. *                                *
  10. *                                *
  11. ****************************************************************/
  12.  
  13. #include <stdio.h>
  14. #include <ctype.h>
  15.  
  16.  
  17. main(argc,argv)
  18. int argc;
  19. char **argv;
  20. {
  21. int file;    
  22. char c,lastc;
  23. int parens,brackets,comments;
  24. int line, col;
  25. char hdr[40];
  26.  
  27.     file= _xopen(argv[1],0);
  28.     if (file == -1) {
  29.         cprintf("File missing. Try CC <filename.ext> \r\n");
  30.         exit();
  31.     }
  32.     brackets= parens= comments= 0;
  33.     line= 0; col= 0;
  34.     lastc= '\0';
  35.  
  36.     while (_xread(file,&c,1)) {
  37.         if (col == 0) {
  38.             sprintf(hdr,"%d: {%d} (%d) /*%d*/",line,brackets,parens,comments);
  39.             while (strlen(hdr) < 23)
  40.                 strcat(hdr," ");
  41.             cprintf("%s|",hdr);
  42.         }
  43.         if (c == '{') ++brackets;
  44.         if (c == '(') ++parens;
  45.         if (c == '}') --brackets;
  46.         if (c == ')') --parens;
  47.  
  48.         if ((c == '*') && (lastc == '/')) ++comments;
  49.         if ((c == '/') && (lastc == '*')) --comments;
  50.  
  51.         ++col;
  52.         if (c == 0x0a) {
  53.             col= 0;
  54.             ++line;
  55.         }
  56.  
  57.         _xwrite(1,&c,1);
  58.         lastc= c;
  59.     }
  60.     cprintf("\r\n\r\n");
  61.     if (brackets) cprintf("Unbalanced brackets\r\n");
  62.     if (parens) cprintf("Unbalanced parenthesis\r\n");
  63.     if (comments) cprintf("Unbalanced comments\r\n");
  64. }
  65.